<body>
<p>This package provides the core composite model for the Audio problem domain, separating the concerns of processing (AudioProcess) from the control of that processing (AudioControls).</p>
<p>AudioProcess defines a simple contract for digital signal processing.<p>
<p>AudioControls specialises CompoundControl for the audio problem domain.</p>
<p>Generally AudioProcesses are the digital signal processing implementations implied by AudioControls. If the AudioControls are a set of potentiometers and switches, the AudioProcess is the integrated circuit that uses those controls. The association between the two may be direct if the user variables implied by the controls are directly usable by the process or it may be indirect in the more general case.</p>
<p>AudioControlsChain specialises CompoundControlChain for the audio problems domain. It is equivalent to the controls on a mixer strip or a multi-fx unit.</p>
<p>AudioProcessChain is a composite AudioProcess that processes its child AudioProcesses sequentially. Importantly, it also tracks its associated AudioControlsChain so that any structural changes to that control chain are accompanied by similar structural changes to the process chain in a thread-safe manner. It is suitable for implementing the digital signal processing required by mixer strips or multi-fx units.</p>
<p>AudioServices specialises Services for the audio problem domain to provide lookup and provision of services. Both key parts of this package, AudioProcess and AudioControls may be provided as plugin services. This provides functionality similar to VSTs from Steinberg.</p>
<h2>Package uk.org.toot.audio.core UML Class Diagram</h2>
<p>The AudioProcess hierarchy is so critically important to other Toot packages that its implementations are always coloured red in UML class diagrams. Additionally, interfaces are always coloured yellow.</p>
<p><image src="doc-files/core-1.gif"></p>
</body>